package com.wn.consumer.feign;

import com.wn.domain.User;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.*;

/**
 * openfeign的集成
 * 1、 添加依赖
 * 2、开启注解
 * 3、声明Feign客户端，指定服务名称
 *
 * @FeignClient
 * 1、声明Feign客户端，指定服务名称
 * 2、统一管理Api调用
 */
@FeignClient(value = "USER-PROVIDER",path = "/user")   //调用那个微服务的名称
public interface UserFeignClient {

    /**
     * 写远程调用的方法
     * 1、请求的url 要和远程服务的controller对应的方法一致
     * 2、请求参数和 远程的controller方法一致
     * 3、返回结果远程的controller方法一致
     */
    // 请求的方式、URL、方法参数要与请求的接口一致
    @GetMapping("/{id}")
    public User findUser(@PathVariable("id")Integer id);

    @PostMapping
    public String saveUser(@RequestBody User user);

    @DeleteMapping("{id}")
    public String removeUser(@PathVariable Integer id);

}